// 导入数据库模块
const db = require('../db/index')

// 工具类
const ResVo = require('../class/ResVo')
const Utils = require('../utils')

// 导入menu模块的路由构建
const {
  Meta,convertMenuData
} =  require('./menu_handler')


// ** ---------- api 处理逻辑 ---------- **
// 获取所有角色列表
const getRoles = async(req, res)=>{
  const sql = `select role_id,role_name,role_key,status from sys_role `
  db.query(sql, (err,results)=>{
    if (err) {
      res.rend(ResVo.err(err))
    }
    const transformedResults = Utils.transformedResults(results)
    console.log("🚀🚀 ~ db.query ~ transformedResults:", transformedResults)
    
    res.send(ResVo.setData(transformedResults))
  })
}

const addRole = (req, res)=>{

}

const updateRole = (req, res)=>{
  
}


const deleteRole = (req, res)=>{
  
}

// 获取角色信息
const getRoleAuth = (req, res)=>{
  const {roleId} = req.params 

  // 查询当前角色具有的菜单权限
  const sql = `SELECT m.id,m.parent_id,m.name,m.path
  FROM sys_menu m  
  JOIN sys_role_menu rm ON m.id = rm.menu_id  
  WHERE rm.role_id = ?
  `
  db.query(sql, roleId,(err, results)=>{
    if (err) {
      res.rend(ResVo.err(err))
    }

    const transformedResults = Utils.transformedResults(results)

// 嵌套路由处理
    const routes = convertMenuData(transformedResults)

    res.send(ResVo.setData(routes))

  })
}

// ** ---------- func ---------- **


module.exports = {
  getRoles,
  addRole,
  updateRole,
  deleteRole,
}
